# -*- coding: utf-8 -*-


#列表实例化
from user import user
from userdao import userdao


users = []

userdao = userdao()





# See PyCharm help at https://www.jetbrains.com/help/pycharm/

def print_dashboard():
    #输入函数
    while True:
        # 打印函数
        print("=============================疫情防控工具箱=========================================")
        print("======1.人员登记====================================================================")
        print("======2.人员查询===================================================================")
        print("======3.人员删除===================================================================")
        print("======4.人员统计===================================================================")
        print("======5.人员分析===================================================================")
        print("=================================================================================")

        option = input('请选择菜单项:')
        #流程控制语句 if elif
        if option == 1:
            print("请输入人员登记信息:日期       地方   身份证               姓名 性别 温度 是否绿码 做什么 年龄")
            inputUserStr = raw_input("样例数据 : 2020/2/12 步行街 420503199202331712 张华 男 36.1 绿码 出去购物 36")
            inputUserArr = inputUserStr.split(" ")
            inputUser = user(inputUserArr[0] , inputUserArr[1] , inputUserArr[2] , inputUserArr[3],
                             inputUserArr[4] , inputUserArr[5] , inputUserArr[6] , inputUserArr[7], inputUserArr[8])
            userdao.insert(inputUser)
            print("登记成功,输入任意键返回主菜单")
            raw_input()
        elif option == 2:
            name = raw_input('请输入名称来查询:')
            idCard = raw_input('请输入身份证来查询:')
            #查询所有用户
            users = userdao.findall(name,idCard)
            print(" 日期       地方   身份证               姓名 性别 温度 是否绿码 做什么 年龄")
            for iuser in users:
                print iuser.time , iuser.where , iuser.idCard , iuser.name , iuser.sex , iuser.temp , iuser.health , iuser.what , iuser.age
            print("查询成功,输入任意键返回主菜单")
            raw_input("")
        elif option == 3:
            #删除指定用户
            print("输入用户的身份证号:")
            idCard = input()
            success = userdao.delete(idCard)
            if success:
                print("删除成功")
            else:
                print("删除失败")
            print("输入任意键返回主菜单")
            raw_input()
        elif option == 4:
            # 统计温度在37.6度以下的人 和 超过这个温度设定的人
            print("1.统计温度37.6度以下的人")
            print("2.统计温度37.6度以上的人")
            subTongJiOption = input('请选择菜单项:')

            if subTongJiOption == 1:
                healthyUsers = getHealthyUsers(userdao.findall())
                print(" 日期       地方   身份证               姓名 性别 温度 是否绿码 做什么 年龄")
                for iuser in healthyUsers:
                    print iuser.time, iuser.where, iuser.idCard, iuser.name, iuser.sex, iuser.temp, iuser.health, iuser.what , iuser.age
            else:
                unHealthyUsers = getUnhealthyUsers(userdao.findall())
                print(" 日期       地方   身份证               姓名 性别 温度 是否绿码 做什么 年龄")
                for iuser in unHealthyUsers:
                    print iuser.time, iuser.where, iuser.idCard, iuser.name, iuser.sex, iuser.temp, iuser.health, iuser.what , iuser.age

            print("输入任意键返回主菜单")
            raw_input()
        elif option == 5:
            # 统计温度在37.6度以下的人 和 超过这个温度设定的人
            users = userdao.findall()
            oldUsers = getOldUsers(users)
            youngUsers = getYongUsers(users)
            sickOldUsers = getSickOldUsers(users)
            sickYongUsers = getSickYoungUsers(users)
            print "%s人青年人 %s人老年人 青年人有%s人患病 老年人有%s人患病"  % (len(youngUsers) , len(oldUsers) , len(sickYongUsers) , len(sickOldUsers))
            yongRate = str(float(len(youngUsers)) / float(len(users)) * 100 ) + "%"
            oldRate  = str(float(len(oldUsers)) / float(len(users)) * 100 ) + "%"
            sickYoungRate = str(float(len(sickYongUsers)) / float(len(users)) * 100 ) + "%"
            sickOldRate   = str(float(len(sickOldUsers)) / float(len(users)) * 100 ) + "%"
            print "占比%s人青年人 占比%s人老年人 占比青年人有%s人患病 占比老年人有%s人患病"  %  (yongRate , oldRate,  sickYoungRate , sickOldRate)
            print("输入任意键返回主菜单")
            raw_input()

def getHealthyUsers(users):
    healthyUsers = []
    for user in users:
        if user.health == "健康":
            healthyUsers.append(user)
    return healthyUsers

def getUnhealthyUsers(users):
    unHealthyUsers = []
    for user in users:
        if user.health == "不健康":
            unHealthyUsers.append(user)
    return unHealthyUsers


def getOldUsers(users):
    oldUsers = []
    for user in users:
        if int(user.age) >= 60:
            oldUsers.append(user)
    return oldUsers


def getYongUsers(users):
    youngUsers = []
    for user in users:
        if int(user.age) < 60:
            youngUsers.append(user)
    return youngUsers

def getSickYoungUsers(users):
    sickYoungUsers = []
    for user in users:
        if (int(user.age) < 60 and user.health == "不健康"):
            sickYoungUsers.append(user)
    return sickYoungUsers

def getSickOldUsers(users):
    sickOldUsers = []
    for user in users:
        if (int(user.age) >= 60 and user.health == "不健康"):
            sickOldUsers.append(user)
    return sickOldUsers

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_dashboard()